Computer Programming II (Locked)

Grade Levels: 10-12
Units of Credit: 1
CIP Code: 11.0202
Prerequisites: Algebra I, Keyboarding Proficiency, Computer Technology and Computer Programming IA & B
Skill Certification Exam: #803 and/or AP Computer Science
COURSE DESCRIPTION
An advanced course in computer programming/software engineering and applications. Reviews and builds on the concepts introduced in CP I. Introduces students to dynamic allocation of data, advanced utilization of classes, advanced GUI techniques, and advanced applications of recursion through the application of mathematical concepts.

CORE STANDARDS, OBJECTIVES, AND INDICATORS

STANDARD 110202-01

Students will develop applications which make advanced use of the skills and concepts developed in Computer Programming I.
OBJECTIVES:
110202-0101 Demonstrate the ability to develop advanced applications.
  • Develop advanced applications using input, calculations, and output.
  • Develop advanced applications using IF structures.
  • Develop advanced applications using iteration.
  • Develop advanced applications using sub-programs.
  • Develop advanced applications in object-oriented programming.
  • Develop advanced applications using recursion.
  • Develop advanced applications using arrays.
  • Develop advanced application projects
  • Develop advanced applications using files (sequential files) or a simple database.

STANDARD 110202-02

Students will use more efficient searching and sorting algorithms.
OBJECTIVES::
110202-0201 Demonstrate the ability to search data structures in programs.
  • Develop a binary search.
  • Develop a hash search including best and worst, average and hash searches.
  • Compare efficiency of sequential and binary searches.
110202-0202 Demonstrate the ability to sort data structures in programs.
  • Sort arrays using quadratic (n²) sorts.
  • Sort arrays using binary (n log n) sorts.
  • Compare the efficiency of the various sorts using BigO notation including best, worst and average.

STANDARD 110202-03

Students will implement and manipulate a simple database.
OBJECTIVES::
110202-0301 Demonstrate the ability to use random access files in programs.
  • Create and initialize random access files.
  • Store data to random access files.
  • Read data from random access files.
  • Update random access files.
  • Index random access files.
  • Utilize hashing on random access files.

STANDARD 110202-04

Students will properly employ dynamic data structures and abstract data types (ADTs).
OBJECTIVES
110202-0401 Demonstrate the ability to use linked lists in programs.
  • Declare pointer identifiers.
  • Create node identifiers.
  • Insert nodes into a linked list (front, middle, end).
  • Delete nodes from a linked list (front, middle, end).
  • Output the values in a linked list.
  • Search for a value in a linked list.
  • Use header and non-header linked lists.
  • Perform other linked list operations.
  • Develop linked list applications.
110202-0402 Demonstrate the ability to use stacks (arrays and linked lists) in programs.
  • Declare stack structures.
  • Initialize stacks.
  • Check for empty and full stacks.
  • Push on to and pop off values from stacks.
  • Develop stack applications.
110202-0403 Demonstrate the ability to use queues (arrays and linked lists) in programs.
  • Declare queue structures.
  • Check for empty and full queues.
  • Initialize queues.
  • Enqueue values on to and dequeue values off of queues.
  • Develop queue applications.
110202-0404 Demonstrate the ability to use binary trees in programs.
  • Declare pointer identifiers.
  • Create binary tree nodes identifiers.
  • Insert nodes into a binary tree.
  • Delete nodes from a binary tree.
  • Output the values in a binary tree.
  • Search for values in ordered binary trees.
  • Develop binary tree applications.

STANDARD 110202-05

Students will design and implement classes using inheritance and composition.
OBJECTIVES
110202-0501 Create user-defined inherited classes.
110202-0502 Demonstrate overloading techniques.
  • Demonstrate function overloading
  • Demonstrate operator overloading (C++ only)

STANDARD 110202-06

Students will develop an individual program of significant complexity and size (300-500 lines) and portfolio of their work.
OBJECTIVES
110202-0601 Create an individual program of significant complexity and size (300-500 lines).
110202-0602 Compile a portfolio of the individual and group programs developed during the course.

STANDARD 110202-07

Students will participate in a work-based learning experience and/or competition.
OBJECTIVES
110202-0701 Participate in a work-based learning experience.
  • Field trip to a software engineering firm
  • Job shadow
  • Internship
  • Industry guest speaker
  • Post-secondary guest speaker
  • Industry interview
110202-0702 Participate at a student programming competition.
  • University of Utah High School Computer Programming Contest
  • Utah State University High School Computer Programming Contest
  • Utah Valley State College Technology Fair (robotics)